Communication networks are known to include a plurality of communication switches that are interoperably coupled to provide communication links between end users. Such end users are coupled to the communication network via ports associated with the plurality of switches. The end users may be individual users such as personal computers, telephones, video phones, facsimile machines, etc. End users may also be other network components such as servers, routers, private branch exchanges (PBX), etc.
Each switch included in the network can receive data from a plurality of ingress connections and relay that data to one or more of a plurality of egress connections. In many cases, data corresponding to a transmission (i.e. a data packet) is broken up at the ingress portion of a communication switch and reassembled at the egress portion of the switch prior to being provided to either a subsequent switch or an end user via an egress connection. Because data for any egress connections can be received by the switch on one of any of the ingress connections, a large number of reassembly operations may be occurring simultaneously within the switch. Such packet reassembly requires adequate buffering space and context information such that the location of each packet is well understood within the buffering space.
Maintenance of context information within such switches can be an overwhelming task when the number of potential ingress connections and egress connections are considered. In prior art switches that performed all of the routing of cells within the switch for packets using circuitry within the ingress line cards, the number of required reassembly contexts to ensure proper forwarding of data is impractical to implement. For example, if a switch receives M ingress connections on each of X line cards and supports N egress connections in each egress line card, the number of potential contexts that may have to be supported in a single egress line card is equal to (M*X)*N. In such prior art systems that do not include any cell routing within the egress line card, this quantity of contexts must be available for each egress line card to ensure that no intermingling of cells for different packets corresponding to an egress connection occurs. Because the number of ingress and egress connections can be substantial, the number of contexts that must be allocated can consume a large amount of resources. In an example switch with 16 ingress line cards, where each ingress line card supports 16 K ingress connections, a single egress line card that supports 16 K egress connections would be required to support on the order of 4 billion reassembly contexts, which is impractical.
Therefore, a need exists for a method and apparatus for efficiently maintaining context information for packets being reassembled.